import router from '@/router'
import store from '@/store'
// 异步路由
import asyncRoute from '@/router/routes/asyncRoute'

// 第1次执行，但是我还没有登录，我还不知道自己的角色
// // 角色 
// let role = store.getters.role
// // 得到的是一个子路由
// let routes = asyncRoute.filter(item => item.meta.role.includes(role))
// let adminRoute = router.options.routes[1]
// // adminRoute.children = routes
// // router.addRoute(adminRoute)



// 在全局导航守卫中完成动态路由添加，但是在此时要注意，它可能会死循环
// 找出口，只让他执行1次
router.beforeEach((to, from, next) => {
  // 判断它是否为第1次，如果是第1次则动态得到数据添加到动态路由中
  if (!router.options.routes[1].children) {
    // 角色 
    let role = store.getters.role
    if (role != '') {
      // 得到的是一个子路由
      let routes = asyncRoute.filter(item => item.meta.role.includes(role))
      let adminRoute = router.options.routes[1]
      adminRoute.children = routes
      // 动态添加路由
      router.addRoute(adminRoute)
      // 重定向
      next({ ...to })
    } else {
      next()
    }
  } else {
    next()
  }
})
